(define (even? x) (= 0 (modulo x 2)))
(define (recurse s lst)
  (if (null? lst)
      (if (>= s 3)
          '(())
          '())
      (let* ((x (car lst))
             (xs (cdr lst)))
        (if (even? s)
            (append
             (map (lambda (ys) (cons x ys))
                  (recurse (+ s 1) xs))
             (recurse s xs))
            (append
             (map (lambda (ys) (cons x ys))
                  (recurse s xs))
             (recurse (+ s 1) xs))))))
(define (ncsubseq lst)
  (recurse 0 lst))
(define t1 (print (ncsubseq '(1 2 3 4 5))))
